using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using Mono.Unix.Native;

namespace Mehat.San.SanFS
{
	
	public class Directory : DirectoryEntry, IDirectory
	{
		private Dictionary<string, IDirectoryEntry>	mChildren = new Dictionary<string, IDirectoryEntry>();
		private Mutex								mLock = new Mutex();
		private List<IVirtualMount>					mVirtualMounts = new List<IVirtualMount>();
		
		public Directory(ulong Inode, string Name, IDirectory Parent, Stat Stat)
		: base(Inode, Name, Parent, Stat)
		{
		}
		
		public Dictionary<string, IDirectoryEntry> Children
		{
			get { return mChildren; }
		}
		
		public Mutex Lock
		{
			get { return mLock; }
		}

		public List<IVirtualMount> VirtualMounts
		{
			get { return mVirtualMounts; }
		}
	}
}
